<?php
/**
 * 邮件处理
 * @author muchen
 * 2016年9月20日
 *发送给qq邮箱：1开启ssl方式连接2进垃圾箱
 *开启php_sockets.dll,php_openssl.dll
 */
class emailMod extends commonMod {
	const SMTP_HOST = "smtp.126.com";
	const SMTP_PORT = 465;
	const SMTP_SSL = true;
	const SMTP_USERNAME = "sendtomail@126.com";//邮箱服务器账号
	const SMTP_PASSWORD = 'test321';//邮箱服务器密码
	const SMTP_AUTH = true;
	const SMTP_CHARSET = "UTF-8";
	const SMTP_FROM_TO = "sendtomail@126.com";//邮箱地址
	const SMTP_FROM_NAME = "MailTest";
	const SMTP_DEBUG = true;
	
	//发送邮件
	public function doSendMail()
	{	
		if(!$_GET['mail_to']||!$_GET['mail_subject']){
			return false;
		}
		$mail_to = $_GET['mail_to'];
		$mail_subject = $_GET['mail_subject'];
		$mail_body = $_GET['mail_body'];
		$mail_attach = $_GET['mail_attach'];
		@error_reporting(E_ERROR | E_WARNING | E_PARSE);//屏蔽出错信息
		require CP_PATH.'/ext/phpmailer/class.phpmailer.php';
		$mail = new PHPMailer();
		$mail->IsSMTP(); //// 使用SMTP方式发送
		$mail->Host       = self::SMTP_HOST; //smtp服务器地址
		$mail->Port       = self::SMTP_PORT;    //smtp服务器端口
		$mail->Username   = self::SMTP_USERNAME; //smtp服务器帐号，
		$mail->Password   = self::SMTP_PASSWORD;  // smtp服务器帐号密码
		$mail->SMTPAuth   = self::SMTP_AUTH;//启用SMTP验证功能，一般需要开启
		$mail->CharSet = self::SMTP_CHARSET;//发送的邮件内容编码
		$mail->SetFrom(self::SMTP_FROM_TO, self::SMTP_FROM_NAME);	// 发件人的邮箱和姓名
		$mail->AddReplyTo(self::SMTP_FROM_TO,self::SMTP_FROM_NAME);// 回复时的邮箱和姓名，一般跟发件人一样
		//是否启用SSL安全连接
		if(self::SMTP_SSL)
		{
			$mail->SMTPSecure = "ssl"; //gmail需要启用sll安全连接
		}
		//开启调试信息
		if(self::SMTP_DEBUG)
		{
			$mail->SMTPDebug  = 1;
		}
	
		$mail->Subject    = $mail_subject;//邮件标题
		$mail->MsgHTML($mail_body);//邮件内容，支持html代码
		//发送邮件
		if(is_array($mail_to))
		{
			//同时发送给多个人
			foreach($mail_to as $key=>$value)
			{
				$mail->AddAddress($value,"");  // 收件人邮箱和姓名
			}
		}
		else
		{		//只发送给一个人
			$mail->AddAddress($mail_to,"");  // 收件人邮箱和姓名
		}
	
		//发送多个附件
		if(is_array($mail_attach))
		{
			foreach($mail_attach as $value)
			{
				if(file_exists($value))//附件必须存在，才会发送
				{
					$mail->AddAttachment($value); // attachment
				}
			}
		}
		//发送一个附件
		if(!empty($mail_attach)&&is_string($mail_attach))
		{
	
			if(file_exists($mail_attach))//附件必须存在，才会发送
			{
				$mail->AddAttachment($mail_attach); //发送附件
			}
		}
	
		if(!$mail->Send())
		{
			if(self::SMTP_DEBUG)
			{
				echo "Mailer Error: " . $mail->ErrorInfo;
			}
			return false;
		}
		else
		{
			return true;
		}
	}


    //删除多条信息
    public function sendAllEmail(){
        $ids = $_POST['arr'];
        $ids =  substr($ids, 0, -1);
        $strArr=explode(',',$ids);
        foreach ($strArr as $val){
            $mail_to[] = $val;
        }
        $result = $this->sendMail($mail_to,"haha","这里是发送内容，在代码的emalMode.class.php的114行");
        if($result){
            echo json_encode(array('result'=>true,'msg'=>'发送成功'));
        }else{
            echo json_encode(array('result'=>true,'msg'=>'发送失败'));
        }

        exit;
    }
	
	//内部调用
	public function sendMail($mail_to,$mail_subject,$mail_body,$mail_attach=NULL)
	{
		@error_reporting(E_ERROR | E_WARNING | E_PARSE);//屏蔽出错信息
		require CP_PATH.'/ext/phpmailer/class.phpmailer.php';
		$mail = new PHPMailer();
		$mail->IsSMTP(); //// 使用SMTP方式发送
		$mail->Host       = self::SMTP_HOST; //smtp服务器地址
		$mail->Port       = self::SMTP_PORT;    //smtp服务器端口
		$mail->Username   = self::SMTP_USERNAME; //smtp服务器帐号，
		$mail->Password   = self::SMTP_PASSWORD;  // smtp服务器帐号密码
		$mail->SMTPAuth   = self::SMTP_AUTH;//启用SMTP验证功能，一般需要开启
		$mail->CharSet = self::SMTP_CHARSET;//发送的邮件内容编码
		$mail->SetFrom(self::SMTP_FROM_TO, self::SMTP_FROM_NAME);	// 发件人的邮箱和姓名
		$mail->AddReplyTo(self::SMTP_FROM_TO,self::SMTP_FROM_NAME);// 回复时的邮箱和姓名，一般跟发件人一样
		//是否启用SSL安全连接
		if(self::SMTP_SSL)
		{
			$mail->SMTPSecure = "ssl"; //gmail需要启用sll安全连接
		}
		//开启调试信息
		if(self::SMTP_DEBUG)
		{
			$mail->SMTPDebug  = 1;
		}

		$mail->Subject    = $mail_subject;//邮件标题
		$mail->MsgHTML($mail_body);//邮件内容，支持html代码
		//发送邮件
		if(is_array($mail_to))
		{
			//同时发送给多个人
			foreach($mail_to as $key=>$value)
			{
				$mail->AddAddress($value,"");  // 收件人邮箱和姓名
			}
		}
		else
		{		//只发送给一个人
			$mail->AddAddress($mail_to,"");  // 收件人邮箱和姓名
		}
	
		//发送多个附件
		if(is_array($mail_attach))
		{
			foreach($mail_attach as $value)
			{
				if(file_exists($value))//附件必须存在，才会发送
				{
					$mail->AddAttachment($value); // attachment
				}
			}
		}
		//发送一个附件
		if(!empty($mail_attach)&&is_string($mail_attach))
		{
	
			if(file_exists($mail_attach))//附件必须存在，才会发送
			{
				$mail->AddAttachment($mail_attach); //发送附件
			}
		}
	
		if(!$mail->Send())
		{
			if(self::SMTP_DEBUG)
			{
				echo "Mailer Error: " . $mail->ErrorInfo;
			}
			return false;
		}
		else
		{
			return true;
		}
	}
}


